execute{ }
RedisCommandHandler{
  Class<? extends RedisServer> aClass=rs.getClass();
  for (  final Method method : aClass.getMethods()) {
    final Class<?>[] types=method.getParameterTypes();
    methods.put(new BytesKey(method.getName().getBytes()),new Wrapper(){
      @Override public Reply execute(      Command command) throws RedisException {
        Object[] objects=new Object[types.length];
          command.toArguments(objects,types);
          return (Reply)method.invoke(rs,objects);
          Throwable te=e.getTargetException();
          return new ErrorReply("ERR " + te.getMessage());
          return new ErrorReply("ERR " + e.getMessage());
}
execute{
  Object[] objects=new Object[types.length];
    command.toArguments(objects,types);
    return (Reply)method.invoke(rs,objects);
    Throwable te=e.getTargetException();
    return new ErrorReply("ERR " + te.getMessage());
    return new ErrorReply("ERR " + e.getMessage());
}
messageReceived{
  byte[] name=msg.getName();
  ByteBuf os=ctx.nextOutboundByteBuffer();
  Wrapper wrapper=methods.get(new BytesKey(name));
  Reply reply;
    reply=wrapper.execute(msg);
 else   if (msg.isInline()) {
    if (reply == null) {
      os.writeBytes(CRLF);
      Object o=reply.data();
      if (o instanceof String) {
        os.writeBytes(((String)o).getBytes(Charsets.US_ASCII));
        os.writeBytes(CRLF);
 else       if (o instanceof byte[]) {
        os.writeBytes((byte[])o);
        os.writeBytes(CRLF);
 else       if (o instanceof Long) {
        os.writeByte(':');
        os.writeBytes(numToBytes((Long)o,true));
        os.writeBytes(CRLF);
    if (reply == null) {
      NYI_REPLY.write(os);
      reply.write(os);
}
